//package com.sleepfish.activiti.service.impl;
//
//import cn.iocoder.yudao.framework.web.config.WebProperties;
//import cn.iocoder.yudao.module.bpm.convert.message.BpmMessageConvert;
//import cn.iocoder.yudao.module.bpm.enums.message.BpmMessageEnum;
//import cn.iocoder.yudao.module.bpm.service.message.dto.BpmMessageSendWhenProcessInstanceApproveReqDTO;
//import cn.iocoder.yudao.module.bpm.service.message.dto.BpmMessageSendWhenProcessInstanceRejectReqDTO;
//import cn.iocoder.yudao.module.bpm.service.message.dto.BpmMessageSendWhenTaskCreatedReqDTO;
//import cn.iocoder.yudao.module.system.api.sms.SmsSendApi;
//import com.sleepfish.activiti.domain.VO.message.BpmMessageSendWhenProcessInstanceApproveReqDTO;
//import com.sleepfish.activiti.service.BpmMessageService;
//import lombok.extern.slf4j.Slf4j;
//import org.springframework.stereotype.Service;
//import org.springframework.validation.annotation.Validated;
//
//import javax.annotation.Resource;
//import java.util.HashMap;
//import java.util.Map;
//
///**
// * BPM 消息 Service 实现类
// *
// * @author xiaochao
// */
//@Service
//@Validated
//@Slf4j
//public class BpmMessageServiceImpl implements BpmMessageService {
//
//
//
//    @Resource
//    private WebProperties webProperties;
//
//    @Override
//    public void sendMessageWhenProcessInstanceApprove(BpmMessageSendWhenProcessInstanceApproveReqDTO reqDTO) {
//        Map<String, Object> templateParams = new HashMap<>();
//        templateParams.put("processInstanceName", reqDTO.getProcessInstanceName());
//        templateParams.put("detailUrl", getProcessInstanceDetailUrl(reqDTO.getProcessInstanceId()));
//        smsSendApi.sendSingleSmsToAdmin(BpmMessageConvert.INSTANCE.convert(reqDTO.getStartUserId(),
//                BpmMessageEnum.PROCESS_INSTANCE_APPROVE.getSmsTemplateCode(), templateParams));
//    }
//
//    @Override
//    public void sendMessageWhenProcessInstanceReject(BpmMessageSendWhenProcessInstanceRejectReqDTO reqDTO) {
//        Map<String, Object> templateParams = new HashMap<>();
//        templateParams.put("processInstanceName", reqDTO.getProcessInstanceName());
//        templateParams.put("comment", reqDTO.getComment());
//        templateParams.put("detailUrl", getProcessInstanceDetailUrl(reqDTO.getProcessInstanceId()));
//        smsSendApi.sendSingleSmsToAdmin(BpmMessageConvert.INSTANCE.convert(reqDTO.getStartUserId(),
//                BpmMessageEnum.PROCESS_INSTANCE_REJECT.getSmsTemplateCode(), templateParams));
//    }
//
//    @Override
//    public void sendMessageWhenTaskAssigned(BpmMessageSendWhenTaskCreatedReqDTO reqDTO) {
//        Map<String, Object> templateParams = new HashMap<>();
//        templateParams.put("processInstanceName", reqDTO.getProcessInstanceName());
//        templateParams.put("taskName", reqDTO.getTaskName());
//        templateParams.put("startUserNickname", reqDTO.getStartUserNickname());
//        templateParams.put("detailUrl", getProcessInstanceDetailUrl(reqDTO.getProcessInstanceId()));
//        smsSendApi.sendSingleSmsToAdmin(BpmMessageConvert.INSTANCE.convert(reqDTO.getStartUserId(),
//                BpmMessageEnum.TASK_ASSIGNED.getSmsTemplateCode(), templateParams));
//    }
//
//    private String getProcessInstanceDetailUrl(String taskId) {
//        return webProperties.getAdminUi().getUrl() + "/bpm/process-instance/detail?id=" + taskId;
//    }
//
//}
